//priority 10000
global.LivingEntityUseItemEvent$Start = function (/**@type Internal.LivingEntityUseItemEvent */event) {
    LivingEntityUseItemEvent.ListenersStart.forEach(Listener=>{
        Listener(event)
    })
}
global.LivingEntityUseItemEvent$Tick = function (/**@type Internal.LivingEntityUseItemEvent */event) {
    LivingEntityUseItemEvent.ListenersTick.forEach(Listener=>{
        Listener(event)
    })
}
global.LivingEntityUseItemEvent$Stop = function (/**@type Internal.LivingEntityUseItemEvent */event) {
    LivingEntityUseItemEvent.ListenersStop.forEach(Listener=>{
        Listener(event)
    })
}
global.LivingEntityUseItemEvent$Finish = function (/**@type Internal.LivingEntityUseItemEvent */event) {
    LivingEntityUseItemEvent.ListenersFinish.forEach(Listener=>{
        Listener(event)
    })
}
/**
 * @callback LivingEntityUseItemEvent.Callback
 * @param {Internal.LivingEntityUseItemEvent} event
 * @return {void}
*/
const LivingEntityUseItemEvent = {
    ListenersStart:[],
    ListenersTick:[],
    ListenersStop:[],
    ListenersFinish:[],
    addListener:function(/**@type {String}*/type,/**@type LivingEntityUseItemEvent.Callback */callback){
        if (type=="Start") {
            this.ListenersStart.push(callback)
        }
        if (type=="Tick") {
            this.ListenersTick.push(callback)
        }
        if (type=="Stop") {
            this.ListenersStop.push(callback)
        }
        if (type=="Finish") {
            this.ListenersFinish.push(callback)
        }
    },
    Start:"Start",
    Tick:"Tick",
    Stop:"Stop",
    Finish:"Finish"
}